import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure(figsize=(6, 10), facecolor='b', dpi=300)  # 定义一张画板命名为fig

# 设置x,y的值
x = np.linspace(-5, 5, 11)  # 这里就是把-5到5平均分成十一份,(-5,-4,-3,.....)
y = [1, 6, 3, -3, 6, 8, 3, 6, 9, 1, -5]

# 添加p1到画板
p1 = fig.add_subplot(111)  # 这里的111是指把画板分成一行一列,把p1添加到第一副图

# 限制函数坐标轴的长度
p1.axis([-5, 5, -10, 10])  # x轴长度为-5到5,y轴长度为-10到10

# 设置x,y轴的刻度
plt.xticks(x)
plt.yticks(y)
# 这里是指:x,y轴的刻度为之前定义的x,y数据列表

# 设置坐标轴的上下限
plt.xlim(-5, 5)
plt.ylim(-10, 10)

# 绘制图像
p1.plot(x, y, marker='o', ms=5, lw=2, ls='--', label='band')
# x,y就是最开始定义的数据
# marker是设置拐点样式:o/h/^/./+等等
# ms是设置拐点的标记大小
# lw就是设置线条粗细,数值越大线条越粗
# ls是设置线条样式,这里'--'为虚线
# label是设置此线条的名称标题


p1.legend(loc='upper left')  # 添加图例,其中best是指将图例的位置添加到最佳位置,
# 你也可以自己设置位置,例如:upper left(左上角)


# 添加标题
plt.title('NUM', fontsize=24)  # 设置图像的标题,fontsize是设置标题文字的大小
plt.xlabel('Value', fontsize=14)  # 设置x轴的标题
plt.ylabel('ARG', fontsize=14)  # 设置y轴的标题

# 添加辅助虚线
for i in range(len(x)):
	x1 = [x[i], x[i]]
	y1 = [0, y[i]]
	plt.plot(x1, y1, 'r-.')
for i in range(len(x)):
	x2 = [0, x[i]]
	y2 = [y[i], y[i]]
	p1.plot(x2, y2, 'r-.')

# 添加每个折点的坐标
for i in range(len(x)):
    p1.text(x[i],y[i],(x[i],y[i]),c='green')

plt.grid(c='b', ls='--')  # 这个函数是生成网格的函数
plt.show()
